In some conventional network interface cards (NIC) installed in end stations, applications that utilize long lived information flows may transmit information for extended periods of time. An end station may also be referred to as a terminal. The information may be transmitted, via a network, between a transmitting terminal and a receiving terminal. The network may comprise a plurality of communications media and communications devices that facilitate the transfer of information between a transmitting terminal and a receiving terminal. Information may be transmitted via a network in structures that may be variously referred to as messages, packets, or frames. The method for transmitting the structure, that comprises the information, may be referred to as a protocol. Some transport layer data protocols may control the amount of information that may be transmitted during a time interval. The transmission control protocol (TCP) may be considered to be an example of one such protocol. TCP may limit the amount of information that is transmitted during a time interval based on a congestion window and slow start. At the beginning of transmission of an information flow, the congestion window may be set to an initial value. This may result in a relatively small amount of information being transmitted from a transmitting terminal to a receiving terminal. The receiving terminal may subsequently communicate an acknowledgement upon receipt of the information that was transmitted by the transmitting terminal.
Upon receipt of the acknowledgement, the transmitting terminal may increase the value associated with the congestion window to a number larger than the initial value, and transmit subsequent information based on the larger value that is associated with the congestion window. This may result in a larger amount of information being transmitted than during a comparable time interval in which the value associated with the congestion window is smaller. The size of the congestion window may increase with the increase in the value associated with the congestion window. A larger congestion window may also result in a higher information transfer rate between the transmitting terminal and the receiving terminal. The receiving terminal may communicate subsequent acknowledgements upon receipt of subsequent information. The transmitting terminal may continue to increase the size of the congestion window upon receipt of a subsequent acknowledgement.
In an instance in which the transmitting terminal does not receive a corresponding acknowledgement to previously transmitted information, the transmitting terminal may determine that the receiving terminal did not receive the previously transmitted information. The transmitting terminal may retransmit, or resend, previously transmitted information for which a corresponding acknowledgement was not received. In addition, the transmitting terminal may determine that congestion may exist in the network resulting in the previously transmitted information not being received by the receiving terminal. The previously transmitted information may be considered by the transmitting terminal to be “lost” in the network. In response to a determination of congestion in the network, or network congestion, the transmitting terminal may also reduce the size of the congestion window. The reduction in the size of the congestion window may result in a reduction in the information transfer rate between the transmitting terminal and the receiving terminal. Once reduced, the size of the congestion window may subsequently begin to increase once again. A maximum information transfer rate for a terminal may be determined by the speed of the NIC, which may represent the maximum rate at which the NIC may transmit or receive information via a communications media to a network.
As NIC speeds increase, the processing demands required to receive and transmit information at those speeds may also increase. For example, when a frame is received at receiving terminal, the NIC card in the receiving terminal may send a notification to the central processing unit (CPU) in the receiving terminal. The CPU may perform protocol related processing tasks related to the processing of received or transmitted packets. As the NIC speed increases, the number of such notifications, or interrupts, in a time interval may also increase. The volume of such interrupts may increase to the extent that the CPU is not able to perform other tasks. A user of the receiving terminal may observe degraded performance in applications, and/or in response to user input.
A TCP offload engine, or TOE, may comprise a technology for a TCP/IP (Internet Protocol) optimized NIC that processes TCP packets. This may result in an offload of these tasks from the CPU. An example of an application of the TOE may be in 10 Gigabit Ethernet NICs. 10 Gigabit Ethernet may comprise a standard that is specified in IEEE 802.3ae, and may define an information transfer rate of 10 gigabits per second. This rate may also be referred to as the “line rate”. In some applications, 10 Gigabit Ethernet may be utilized to provide high speed interconnection between terminals, such as personal computers and computer workstations, and computer storage devices, such as disk drives, based on the Internet small computer systems interface (iSCSI). In addition, iSCSI may be utilized to provide high speed interconnect between various devices in a network comprising end stations, such as personal computers and computer workstations, and server devices, such as world wide web (WWW) servers, email servers, and streaming media servers. In some of these applications, information may be transmitted between, for example, a computer storage device, and a computer workstation, for a time duration that is long in comparison to a typical duration of an information transfer over the network. These long time duration information transfers may be referred to as “long lived” information flows, or long lived flows.
A plurality of devices that are connected to a network may transmit information. The aggregate quantity of traffic generated by the plurality of devices may exceed the capacity of the network for transporting information between a transmitting terminal or end station and a receiving terminal or end station. A portion of the quantity of traffic generated may be discarded by a device within the network. Packets that comprise information that is discarded may be regarded as lost packets. As interface speeds at NICs increase, the likelihood of congestion in the network may also increase. In addition, as the number of long lived flows increases, the likelihood of network congestion may also increase.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.